1. Field of Invention
The present invention relates generally to an integrated voice and data network, and more particularly, to a method and apparatus for regulating the transmission of data between a server and a client via an integrated voice and data network.
2. Background of the Invention
The typical internet connection has limited bandwidth. For example, a current dial-up modem has an upper limit of approximately 56 kilo-bits per second. Higher speed connections are available but all have their limits.
A typical internet connection allows multiple functions to operate simultaneously. For example, when a user is logged onto the internet, the user may be simultaneously xe2x80x9csurfingxe2x80x9d the web, downloading software, and accessing mail. Each of these functions share the available bandwidth connection in an unspecified way. Generally, for functions which are not time sensitive, the method for sharing the bandwidth connection is not important. However, some functions running on the internet are time sensitive and run in xe2x80x9creal-timexe2x80x9d. That is, a temporary slow down or interruption in the flow of the data stream may cause severe consequences. When one or more streams of the application is real-time, then a more intelligent sharing mechanism is required.
Voice communication is an example of an internet function which is time sensitive and runs in real time. If a voice application sending a voice communication does not receive an adequate portion of the available bandwidth on an ongoing basis, the sound received may have delays, gaps, and other artifacts that decrease the quality of the sound. In extreme cases, such delays and artifacts may even render the voice application unusable.
The limitations in the prior art are overcome by a system and method for managing the transfer of data from a server to a client over an integrated voice and data network. In one aspect of the invention, the present invention advantageously limits the bandwidth used for sending non-voice data, such as advertising data, from a server to the client. The limit on the transmission of non-voice data advantageously ensures that enough bandwidth is available for the transmission of voice data. One advantage of the present invention is that it improves the quality of voice applications by managing and controlling the bandwidth used to transfer non-voice data.
In one embodiment of the present invention, a transfer data rate input is sent by a client to a server. The server determines the transfer data rate for non-voice data based on the transfer data rate input. The server then sends the data, preferably non-voice data, to the client at the transfer data rate. If the client does not send a transfer data rate input to the server, then a default data transfer rate is used. Preferably, the client may dynamically change the transfer data rate by sending a different transfer data rate input to the server. One advantage of this embodiment is that it allows the client to manage the bandwidth allocated to non-voice data based on the bandwidth requirements of a voice application.
In another embodiment, the present invention comprises an intercept layer and a bandwidth management control module. The intercept layer receives the data from the server. The bandwidth management control module, which is communicatively coupled to the intercept layer and a voice application, examines the data packets and manages the sending of an acknowledge packet to the server indicating that the data has been received. Preferably, the bandwidth management control module may delay the sending of the acknowledge packet to decrease the transfer of data from the server to the client. In another embodiment, the bandwidth management control module may change the window size of the acknowledge packet to indicate to the server to limit the size of the data sent to the window size. Additionally, the bandwidth management control module may receive a signal from a voice application indicating that either more or less bandwidth is available for non-voice data.